home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmigaPlus / Tools / Development / MCC_TheBar / Developer / C / Examples / demo2.c < prev    next >
Encoding:
C/C++ Source or Header  |  2004-01-31  |  11.3 KB  |  251 lines

  1.  
  2. #include <proto/exec.h>
  3. #include <proto/dos.h>
  4. #include <proto/muimaster.h>
  5. #include <clib/alib_protos.h>
  6. #include <mui/TheBar_mcc.h>
  7. #include <string.h>
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11. /***********************************************************************/
  12.  
  13. #ifndef MAKE_ID
  14. #define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  15. #endif
  16.  
  17. long __stack = 32000;
  18. struct Library *MUIMasterBase;
  19.  
  20. /***********************************************************************/
  21.  
  22. STRPTR pics[] =
  23. {
  24.     "CDGet",
  25.     "CDSave",
  26.     "CDStop",
  27.     "CDDisc",
  28.     "CDMatches",
  29.     "CDEdit",
  30.     NULL
  31. };
  32.  
  33. struct MUIS_TheBar_Button buttons[] =
  34. {
  35.     {0, 0,  "_Get", "Get the disc."},
  36.     {2, 1,  "_Stop", "Stop the connection."},
  37.     {MUIV_TheBar_ButtonSpacer, -1},
  38.     {1, 2,  "Sa_ve", "Save the disc."},
  39.     {MUIV_TheBar_BarSpacer, -1},
  40.     {3,  3, "_Disc", "Disc page.", 0, (1<<4)|(1<<5)},
  41.     {4,  4, "_Matches", "Matches page.", MUIV_TheBar_ButtonFlag_Selected, (1<<3)|(1<<5)},
  42.     {5,  5, "_Edit", "Edit page.", 0, (1<<3)|(1<<4)},
  43.     {MUIV_TheBar_End, -1},
  44. };
  45.  
  46. char *rowss[]       = {"0","1","2","3","6",NULL};
  47. char *colss[]       = {"0","1","2","3","4","5","6",NULL};
  48. char *viewModes[]   = {"Images and text","Images","Text",NULL};
  49. char *barPoss[]     = {"Left","Center","Right",NULL};
  50. char *labelPoss[]   = {"Bottom","Top","Right","Left",NULL};
  51.  
  52. int
  53. main(int argc,char **argv)
  54. {
  55.     int res;
  56.  
  57.     if (MUIMasterBase = OpenLibrary("muimaster.library",19))
  58.     {
  59.         Object *app, *bwin, *cwin, *mg, *sb, *viewMode, *barPos, *labelPos, *borderless,
  60.                *sunny, *raised, *scaled, *enableKeys, *barSpacer, *freeHoriz, *freeVert,
  61.                *update, *rows, *cols, *rb, *rs, *ri, *ra;
  62.  
  63.         if (app = ApplicationObject,
  64.                 MUIA_Application_Title,        "TheBar Demo2",
  65.                 MUIA_Application_Version,      "$VER: TheBarDemo2 1.0 (24.6.2003)",
  66.                 MUIA_Application_Copyright,    "Copyright 2003 by Alfonso Ranieri",
  67.                 MUIA_Application_Author,       "Alfonso Ranieri <alforan@tin.it>",
  68.                 MUIA_Application_Description,  "TheBar example",
  69.                 MUIA_Application_Base,         "THEBAREXAMPLE",
  70.  
  71.                 SubWindow, bwin = WindowObject,
  72.                     MUIA_Window_ID,    MAKE_ID('B','W','I','N'),
  73.                     MUIA_Window_Title, "TheBar Demo2",
  74.                     WindowContents, mg = VGroup,
  75.                         Child, sb = TheBarObject,
  76.                             MUIA_Group_Horiz,        TRUE,
  77.                             MUIA_TheBar_ViewMode,    MUIV_TheBar_ViewMode_Gfx,
  78.                             MUIA_TheBar_Buttons,     buttons,
  79.                             MUIA_TheBar_PicsDrawer,  "PROGDIR:PICS",
  80.                             MUIA_TheBar_Pics,        pics,
  81.                             MUIA_TheBar_Frame,       TRUE,
  82.                             MUIA_TheBar_DragBar,     TRUE,
  83.                         End,
  84.                     End,
  85.                 End,
  86.  
  87.                 SubWindow, cwin = WindowObject,
  88.                     MUIA_Window_ID,    MAKE_ID('C','W','I','N'),
  89.                     MUIA_Window_Title, "TheBar Demo1 Control",
  90.  
  91.                     WindowContents, VGroup,
  92.  
  93.                         Child, VGroup,
  94.                             GroupFrameT("Appareance"),
  95.                             Child, ColGroup(2),
  96.                                 Child, Label2("Rows"),
  97.                                 Child, HGroup,
  98.                                     Child, rows = MUI_MakeObject(MUIO_Radio,NULL,rowss),
  99.                                     Child, HSpace(0),
  100.                                 End,
  101.                                 Child, Label2("Columns"),
  102.                                 Child, HGroup,
  103.                                     Child, cols = MUI_MakeObject(MUIO_Radio,NULL,colss),
  104.                                     Child, HSpace(0),
  105.                                 End,
  106.                                 Child, Label2("ViewMode"),
  107.                                 Child, viewMode = MUI_MakeObject(MUIO_Cycle,NULL,viewModes),
  108.                                 Child, Label2("Buttons position"),
  109.                                 Child, barPos = MUI_MakeObject(MUIO_Cycle,NULL,barPoss),
  110.                                 Child, Label2("Label position"),
  111.                                 Child, labelPos = MUI_MakeObject(MUIO_Cycle,NULL,labelPoss),
  112.                             End,
  113.                             Child, ScrollgroupObject,
  114.                                 MUIA_Scrollgroup_FreeHoriz, FALSE,
  115.                                 MUIA_Scrollgroup_Contents, VirtgroupObject,
  116.                                     MUIA_Frame, MUIV_Frame_Virtual,
  117.                                     Child, HGroup,
  118.                                         Child, ColGroup(2),
  119.                                             Child, borderless = MUI_MakeObject(MUIO_Checkmark,NULL),
  120.                                             Child, LLabel1("Borderless"),
  121.                                             Child, sunny = MUI_MakeObject(MUIO_Checkmark,NULL),
  122.                                             Child, LLabel1("Sunny"),
  123.                                             Child, raised = MUI_MakeObject(MUIO_Checkmark,NULL),
  124.                                             Child, LLabel1("Raised"),
  125.                                             Child, scaled = MUI_MakeObject(MUIO_Checkmark,NULL),
  126.                                             Child, LLabel1("Scaled"),
  127.                                             Child, enableKeys = MUI_MakeObject(MUIO_Checkmark,NULL),
  128.                                             Child, LLabel1("Enable keys"),
  129.                                             Child, barSpacer = MUI_MakeObject(MUIO_Checkmark,NULL),
  130.                                             Child, LLabel1("Bar spacer"),
  131.                                             Child, freeHoriz = MUI_MakeObject(MUIO_Checkmark,NULL),
  132.                                             Child, LLabel("Free horiz"),
  133.                                             Child, freeVert = MUI_MakeObject(MUIO_Checkmark,NULL),
  134.                                             Child, LLabel("Free vert"),
  135.                                             Child, RectangleObject, MUIA_FixHeightTxt,"\n",End,
  136.                                             Child, RectangleObject, MUIA_FixHeightTxt,"\n",End,
  137.                                             Child, rb = MUI_MakeObject(MUIO_Checkmark,NULL),
  138.                                             Child, LLabel("Remove bar spacers"),
  139.                                             Child, rs = MUI_MakeObject(MUIO_Checkmark,NULL),
  140.                                             Child, LLabel("Remove button spacers"),
  141.                                             Child, ri = MUI_MakeObject(MUIO_Checkmark,NULL),
  142.                                             Child, LLabel("Remove image spacers"),
  143.                                             Child, ra = MUI_MakeObject(MUIO_Checkmark,NULL),
  144.                                             Child, LLabel("Remove all"),
  145.                                         End,
  146.                                         Child, HSpace(0),
  147.                                     End,
  148.                                     Child, VSpace(0),
  149.                                 End,
  150.                             End,
  151.                             Child, update = MUI_MakeObject(MUIO_Button,"_Update"),
  152.                         End,
  153.                     End,
  154.                 End,
  155.             End)
  156.         {
  157.             ULONG sigs = 0, id;
  158.  
  159.             set(rows,MUIA_Group_Horiz,TRUE);
  160.             set(cols,MUIA_Group_Horiz,TRUE);
  161.             set(viewMode,MUIA_Cycle_Active,1);
  162.  
  163.             DoMethod(bwin,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,MUIV_Notify_Application,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  164.             DoMethod(cwin,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,MUIV_Notify_Application,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  165.             DoMethod(update,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,TAG_USER);
  166.  
  167.             set(cwin,MUIA_Window_Open,TRUE);
  168.             set(bwin,MUIA_Window_Open,TRUE);
  169.  
  170.             while ((id = DoMethod(app,MUIM_Application_NewInput,&sigs))!=MUIV_Application_ReturnID_Quit)
  171.             {
  172.                 if (id==TAG_USER)
  173.                 {
  174.                     ULONG rowsV, colsV, viewModeV, barPosV, labelPosV, borderlessV, sunnyV,
  175.                           raisedV, scaledV, enableKeysV, barSpacerV, freeHorizV, freeVertV,
  176.                           rbV, rsV, riV, raV, rem;
  177.  
  178.                     get(rows,MUIA_Radio_Active,&rowsV);
  179.                     if (rowsV==4) rowsV = 6;
  180.                     get(cols,MUIA_Radio_Active,&colsV);
  181.  
  182.                     get(viewMode,MUIA_Cycle_Active,&viewModeV);
  183.                     get(barPos,MUIA_Cycle_Active,&barPosV);
  184.                     get(labelPos,MUIA_Cycle_Active,&labelPosV);
  185.  
  186.                     get(borderless,MUIA_Selected,&borderlessV);
  187.                     get(sunny,MUIA_Selected,&sunnyV);
  188.                     get(raised,MUIA_Selected,&raisedV);
  189.                     get(scaled,MUIA_Selected,&scaledV);
  190.                     get(enableKeys,MUIA_Selected,&enableKeysV);
  191.                     get(barSpacer,MUIA_Selected,&barSpacerV);
  192.                     get(freeHoriz,MUIA_Selected,&freeHorizV);
  193.                     get(freeVert,MUIA_Selected,&freeVertV);
  194.  
  195.                     get(rb,MUIA_Selected,&rbV);
  196.                     get(rs,MUIA_Selected,&rsV);
  197.                     get(ri,MUIA_Selected,&riV);
  198.                     get(ra,MUIA_Selected,&raV);
  199.                     rem = 0;
  200.                     if (rbV) rem |= MUIV_TheBar_Remove_BarSpacers;
  201.                     if (rsV) rem |= MUIV_TheBar_Remove_ButtonSpacers;
  202.                     if (riV) rem |= MUIV_TheBar_Remove_ImageSpacers;
  203.                     if (raV) rem |= MUIV_TheBar_Remove_All;
  204.  
  205.                     SetAttrs(sb,MUIA_TheBar_Columns,      colsV,
  206.                                 MUIA_TheBar_Rows,         rowsV,
  207.                                 MUIA_TheBar_ViewMode,     viewModeV,
  208.                                 MUIA_TheBar_Borderless,   borderlessV,
  209.                                 MUIA_TheBar_Sunny,        sunnyV,
  210.                                 MUIA_TheBar_Raised,       raisedV,
  211.                                 MUIA_TheBar_Scaled,       scaledV,
  212.                                 MUIA_TheBar_EnableKeys,   enableKeysV,
  213.                                 MUIA_TheBar_BarSpacer,    barSpacerV,
  214.                                 MUIA_TheBar_FreeHoriz,    freeHorizV,
  215.                                 MUIA_TheBar_FreeVert,     freeVertV,
  216.                                 MUIA_TheBar_BarPos,       barPosV,
  217.                                 MUIA_TheBar_LabelPos,     labelPosV,
  218.                                 MUIA_TheBar_Remove,       rem,
  219.                                 TAG_DONE);
  220.                 }
  221.  
  222.                 if (sigs)
  223.                 {
  224.                     sigs = Wait(sigs | SIGBREAKF_CTRL_C);
  225.                     if (sigs & SIGBREAKF_CTRL_C) break;
  226.                 }
  227.             }
  228.  
  229.             MUI_DisposeObject(app);
  230.  
  231.             res = RETURN_OK;
  232.         }
  233.         else
  234.         {
  235.             printf("%s: can't create application\n",argv[0]);
  236.             res = RETURN_FAIL;
  237.         }
  238.  
  239.         CloseLibrary(MUIMasterBase);
  240.     }
  241.     else
  242.     {
  243.         printf("%s: Can't open muimaster.library ver 19 or higher\n",argv[0]);
  244.         res = RETURN_ERROR;
  245.     }
  246.  
  247.     return res;
  248. }
  249.  
  250. /***********************************************************************/
  251.